/*
* Copyright (C) 2008-2009 J-P Nurmi jpnurmi@gmail.com
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* $Id: application.h 295 2009-02-17 09:10:58Z vjousse $
*/

#ifndef APPLICATION_H
#define APPLICATION_H

#include <QApplication>

class IrcModel;
class Controller;

struct UserInfo;
struct Server;

class Application : public QApplication
{
    Q_OBJECT

public:
    Application(int& argc, char* argv[]);

/*
    static Connection* addConnection(const Server& server, const UserInfo& user);
    static Connection* connection(const Server& server, const UserInfo& user);
    static void removeConnection(Connection* connection);

    static Connection* currentConnection();
    static void setCurrentConnection(Connection* connection);

signals:
    void currentConnectionChanged(Connection* connection);

private slots:
    void onConnectionStateChanged();
*/
private:
	IrcModel* model;

    static struct ApplicationData
    {
        //QList<Connection*> connections;
        //Connection* currentConnection;
    } d;
};

#define cApp static_cast<Application*>(qApp)

#endif // APPLICATION_H
